<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <script>

        // promise是一种解决异步方法的方案
        // promise有三个状态 一个是 进行中 一个是已成功 还有一个是已失败

        // promise 只能从进行中的状态转化为失败的状态 或者 从进行中的状态转化为成功的状态

        // promise接收一个函数作为参数 函数中又可以接收两个参数 分别是 resolve reject
        // resolve 函数一旦调用 promise会立即转化为成功的状态
        // reject  函数一旦调用 promise会立即转化为失败的状态
        var i = 0;
        var promise = new Promise((resolve, reject) => {
            setTimeout(() => {
                i = 10
                // resolve(i)
                reject(i)
            })
        })
        // then方法是promise执行成功后获取数据的方法
        // catch 方法时promise执行失败的时候获取失败数据的方法
        // promise.then(data => {
        //     console.log(data)
        // }).catch(err=> {
        //     console.log(err)
        // })
        // var i = 0
        // setTimeout(() => {
        //     i = 10
        // })
        // console.log(i)
        // then方法也可以接受两个函数作为参数 第一个参数表示执行成功的回调函数
        // 第二个参数是执行失败的时候的回调函数  其实第二个参数就相当于catch
        promise.then(res => {
            console.log(res)
        }, err=> {
            console.log(err)
        })
    </script>
</body>
</html>